package org.go.domain;

import org.go.scheduler.Scheduler;
import org.go.trigger.Trigger;

public enum CompletedExecutionInstruction {
	/**
	 * <p><code>NOOP</code> Instructs the <code>{@link Scheduler}</code> that the 
	 * <code>{@link Trigger}</code> has no further instructions.</p>
	 * 
	 * <p><code>RE_EXECUTE_JOB</code> Instructs the <code>{@link Scheduler}</code> that the 
	 * <code>{@link Trigger}</code> wants the <code>{@link org.quartz.JobDetail}</code> to 
	 * re-execute immediately. If not in a 'RECOVERING' or 'FAILED_OVER' situation, the
	 * execution context will be re-used (giving the <code>Job</code> the
	 * ability to 'see' anything placed in the context by its last execution).</p>
	 * 
	 * <p><code>SET_TRIGGER_COMPLETE</code> Instructs the <code>{@link Scheduler}</code> that the 
	 * <code>{@link Trigger}</code> should be put in the <code>COMPLETE</code> state.</p>
	 * 
	 * <p><code>DELETE_TRIGGER</code> Instructs the <code>{@link Scheduler}</code> that the 
	 * <code>{@link Trigger}</code> wants itself deleted.</p>
	 * 
	 * <p><code>SET_ALL_JOB_TRIGGERS_COMPLETE</code> Instructs the <code>{@link Scheduler}</code> 
	 * that all <code>Trigger</code>s referencing the same <code>{@link org.quartz.JobDetail}</code> 
	 * as this one should be put in the <code>COMPLETE</code> state.</p>
	 * 
	 * <p><code>SET_TRIGGER_ERROR</code> Instructs the <code>{@link Scheduler}</code> that all 
	 * <code>Trigger</code>s referencing the same <code>{@link org.quartz.JobDetail}</code> as
	 * this one should be put in the <code>ERROR</code> state.</p>
	 *
	 * <p><code>SET_ALL_JOB_TRIGGERS_ERROR</code> Instructs the <code>{@link Scheduler}</code> that 
	 * the <code>Trigger</code> should be put in the <code>ERROR</code> state.</p>
	 */
	DELETE_TRIGGER, NOOP, RE_EXECUTE_JOB, SET_ALL_JOB_TRIGGERS_COMPLETE, SET_ALL_JOB_TRIGGERS_ERROR, SET_TRIGGER_COMPLETE, SET_TRIGGER_ERROR
}
